Skip to main content

Java Static

Banner java icon

🎉 The Fun Side of the static Keyword in Java! 🚀

The static keyword in Java is like that one friend who's always around—reliable, ever-present, and never needs an invite! You can slap static on variables, methods, blocks, imports, and even inner classes. Let's dive in and uncover the magic of static in Java, one step at a time!


📌 Table of Contents

  1. Static Variable
  2. Static Method
  3. Static Import Statement
  4. Static Block
  5. Static Class
  6. Summary

1️⃣ Static Variable

🎯 What’s the Deal with Static Variables?

A static variable is like a celebrity—there’s only one of it in the entire program, and everyone wants access!

Syntax:

ACCESS_MODIFER static DATA_TYPE VARNAME;

Example:

public static Integer staticVar;

This means:

  • Only one copy exists, no matter how many instances of the class are created.
  • Accessible to all instances—change it in one place, and it updates everywhere!

Example:

public class JavaStaticExample {
public static void main(String[] args) {
DataObject objOne = new DataObject();
objOne.staticVar = 10;
objOne.nonStaticVar = 20;

DataObject objTwo = new DataObject();

System.out.println(objTwo.staticVar); // 10
System.out.println(objTwo.nonStaticVar); // null

DataObject.staticVar = 30; // Direct Access

System.out.println(objOne.staticVar); // 30
System.out.println(objTwo.staticVar); // 30
}
}

class DataObject {
public static Integer staticVar;
public Integer nonStaticVar;
}

Output:

10
null
30
30

Notice how updating staticVar updates it everywhere? That’s the power of static!


2️⃣ Static Method

📢 What’s So Special About Static Methods?

  • A static method belongs to the class, not the instance.
  • It can’t access non-static variables.
  • Can be called without creating an object.

Syntax:1

ACCESS_MODIFER static RETURN_TYPE METHOD_NAME;

Example:1

public class JavaStaticExample {
public static void main(String[] args) {
DataObject.staticVar = 30;

Integer value1 = DataObject.getStaticVar(); // class reference
DataObject objOne = new DataObject();
Integer value2 = objOne.getStaticVar(); // instance reference

System.out.println(value1);
System.out.println(value2);
}
}

class DataObject {
public static Integer staticVar;

public static Integer getStaticVar() {
return staticVar;
}
}

Output:1

30
30

(Yes, you can call it using an instance, but that’s just extra effort! 😆)


3️⃣ Static Import Statement

🔌 Plug & Play: Importing Static Members

Just like normal imports, but specifically for static members!

Syntax:2

import static <<package>>.<<type>>.<<static member>>;

Example:2

import static java.lang.System.out;

public class JavaStaticExample {
public static void main(String[] args) {
DataObject.staticVar = 30;
out.println(DataObject.staticVar); // No need for System.out.println()
}
}

class DataObject {
public static Integer staticVar;
}

Output:2

30

(One less System.out, one more happy developer! 😎)


4️⃣ Static Block

🏗️ Initializing Before You Even Begin

A static block runs before anything else in the class!

Example:3

class DataObject {
static {
System.out.println("Inside static initializer");
}
}

Output:3

Inside static initializer

Multiple static blocks? No worries, they execute in order!


5️⃣ Static Class

🏰 The Inner Static Class

In Java, you can’t have a top-level static class, but you can have a static nested class!

Example:4

public class JavaStaticExample {
public static void main(String[] args) {
System.out.println(DataObject.StaticInnerClass.innerStaticVar);
}
}

class DataObject {
static class StaticInnerClass {
static Integer innerStaticVar = 70;
}
}

Output:4

70

(Inner classes are the VIP members of static!)


🎯 Summary

🔹 static variables and methods belong to the class, not objects.

🔹 You don’t need an instance to access static members.

🔹 Non-static members can’t be accessed inside static methods, blocks, or inner classes.

🔹 Multiple static blocks execute in order.

🔹 Only inner classes can be static.

🔹 Static imports make your life easier by allowing you to use static members without class references.

🎉 Congratulations! You just mastered the static keyword in Java! 🚀

Happy Coding! 😃👨‍💻👩‍💻